package data_structures_and_algorithms.two_point;

/**
 * @ClassName Code_0088_mergeTwoSortArray
 * @Description: https://leetcode.cn/problems/merge-sorted-array/
 * @Author: yongliang.ma
 * @Create_time:2022/10/28 13:25
 */
public class Code_0088_mergeTwoSortArray {

    // 题目已经假定数组nums1长度为m + n
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        // 因为是数组，不使用额外空间，所以我们从尾开始填充数字
        int tail = nums1.length - 1, cur1 = m -1, cur2 = n -1;
        while (cur1 >= 0 && cur2 >= 0){
            if (nums1[cur1] > nums2[cur2]){
                nums1[tail--] = nums1[cur1--];
            }else {
                nums1[tail--] = nums2[cur2--];
            }
        }
        while (cur1 >= 0){
            nums1[tail--] = nums1[cur1--];
        }
        while (cur2 >= 0){
            nums1[tail--] = nums2[cur2--];
        }
    }
}
